package com.item;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * HashMap特点和底层原理
 * 1.由键决定：无序，不重复，无索引.底层是哈希表
 * 2.依赖键的hashCode和equals方法
 */
public class HashMapPractice {
    public static void main(String[] args) {
        //创建map集合
        Map<String,List<String>> scmap = new HashMap<>();
        //创建list集合
        List<String> scProvince = new ArrayList<>();
        scProvince.add("成都市");
        scProvince.add("绵阳市");
        scProvince.add("德阳市");
        scProvince.add("广元市");
        scProvince.add("乐山市");
        scProvince.add("宜宾市");
        scProvince.add("自贡市");
        scmap.put("四川省",scProvince);
        printMap(scmap);

        List<String> hnProvince = new ArrayList<>();
        Map<String,List<String>> hnmap = new HashMap<>();
        hnProvince.add("郑州市");
        hnProvince.add("开封市");
        hnProvince.add("洛阳市");
        hnProvince.add("安阳市");
        hnProvince.add("新乡市");
        hnProvince.add("南阳市");
        hnProvince.add("许昌市");
        hnmap.put("河南省",hnProvince);
        printMap(hnmap);

        Map<String,List<String>> hbmap = new HashMap<>();
        List<String> hbProvince = new ArrayList<>();
        hbProvince.add("武汉市");
        hbProvince.add("黄石市");
        hbProvince.add("十堰市");
        hbProvince.add("宜昌市");
        hbProvince.add("襄阳市");
        hbProvince.add("鄂州市");
        hbProvince.add("湘潭市");
        hbmap.put("湖北省",hbProvince);
        printMap(hbmap);
    }
    public static void printMap(Map<String,List<String>> map){
        map.forEach((k,v)->{
            StringBuilder  sb = new StringBuilder();
            //将value转换成特定字符串
            v.forEach(city->{
                sb.append(city+",");
            });
            //最后把sb的逗号去掉
            sb.deleteCharAt(sb.length()-1);

            String result = k+"="+sb.toString();
            System.out.println(result);
        });
    }
}
